#pragma once
#include "EntityControl.h"
//#include "ControlContext.h"

class EntityControl;
class ControlContext;




class Controller
{
	
	

	//bool killed;
	//bool GameOver;
	///////////DDDDDDDDDDIIIIIIIIIIIIIIIIIEEEEEEEEEEEEE
	//bool readyToDie;
public:

	struct Projectile
	{
		Ogre::String modelMeshName;
		Ogre::Vector3 velocity;
		Ogre::Vector3 position;
		Ogre::Vector3 scale;
		Ogre::Vector3 rotate;
		bool particleSystemAdded;
		Ogre::String parcticelSystemName;
		int collisionGroup;
	};

	

	Controller(void);
	virtual ~Controller(void);


	virtual bool apply(
		EntityControl* entity,
		const ControlContext& context)=0;

	virtual bool isSpawningNeeded()=0;
	virtual Projectile getNextSpawnItem()=0;
};

